Radio Browser Player

Use this plugin to play internet radio in your Q-SYS design. It searches the free Radio Browser directory — a community-maintained catalogue of tens of thousands of stations worldwide — and streams the station you pick straight into your audio system. No subscription, no account, and no extra hardware.

Find stations by name or country, or browse the directory's charts by genre. Save the ones you like as presets and recall them from the plugin, from a Q-SYS UCI, or from a third-party control system. Each instance can run up to four independent zones, so one plugin can feed four different rooms with four different stations.

Compatibility

The plugin requires:

It works with the public Radio Browser service and automatically falls back across the de1, de2, and all mirrors if one is unreachable.

No licence, activation, or account is required. The Radio Browser directory is free and open, and the plugin identifies itself to the service on every request as a well-behaved client.

Note: The Network Interface property offers AUX A and AUX B in addition to LAN A and LAN B, but not every Core model has AUX interfaces. Only select an interface your Core actually provides.

Prerequisites

Note: Designer emulation has no network access, so the plugin cannot stream or search there. In emulation the status reads Emulation Mode — deploy to Core to test and the network checks are skipped. This is expected — run the design on a real Core to test playback.

Quick Start

This takes about five minutes and ends with audio playing.

  1. Drag the Radio Browser Player plugin into your design.
  2. In the Properties pane, set Zone Count to the number of independent rooms you need (leave it at 1 if you are not sure) and Audio Mode to Stereo or Mono. See Properties.
  3. Wire the plugin's audio output pins — Zone 1 Audio L and Zone 1 Audio R — to a mixer, gain, or output component.
  4. Press F5 to save the design to the Core and run it.
  5. Open the plugin and go to the Search page. Type a station name into the Name field, or choose a Country, and press Search.
  6. Tap a station in the results list. Its details appear on the Radio page.
  7. Go to the Radio page and press Play. The Stream bar turns green and reads OK, and the level meters start moving.
  8. Save the station: press Save Mode, then tap an empty preset button. The station is stored and survives a Core restart.

Tip: Volume starts at −20 dB every time the design loads, so a fresh start is always at a safe listening level. Raise it with the fader or the + button once audio is flowing.

Properties

Properties are set in the Designer Properties pane before the design runs. They change how many pages and audio pins the plugin exposes, so set them before you wire anything up.

Zone Count

1 to 4. Each zone is a completely independent player with its own stream, volume, presets selection, and audio pins — one plugin can serve four rooms playing four different stations. Adding a zone adds a Radio page, a Presets page, and a set of audio pins. Default is 1. See Multiple Zones.

Audio Mode

Stereo gives each zone two output pins, Zone n Audio L and Zone n Audio R, and a pair of level meters. Mono sums left and right inside the plugin and gives each zone a single Zone n Audio pin and one meter — the right choice for paging systems and overhead speakers, where a stereo image serves no purpose and you would otherwise waste a channel. Default is Stereo.

Text Scrolling

When enabled, long station names, track titles, and genre lists scroll horizontally so you can read the whole thing in a narrow field. When disabled, the text wraps onto multiple lines instead and stays still. Turn it off if you find movement distracting on a wall panel. Default is enabled.

Network Interface

Which network interface the audio streams use. Auto lets the Core decide, which is correct for most installs. Choose LAN A, LAN B, LAN C, or LAN D to force streaming traffic onto a specific interface — useful when your Core has one interface on the AV network and another with the internet route. Default is Auto.

Note: Only select an interface your Core physically has. LAN C and LAN D exist on some Core models and not others. If you pick one this Core does not have, the plugin checks at startup and reports it in Status. Pick Auto to clear it.

Stream Resync

Master switch for the drift-recovery feature. Internet radio streams slowly fall behind live over long uptime because the receiver's buffer drifts against the station's clock. When Stream Resync is enabled, the Resync pin works and the daily Resync Time schedule runs; when disabled, both are ignored. Default is enabled.

Resync Time

The local time of day, in 24-hour HH:MM format (00:00 to 23:59; 24:00 is also accepted as midnight), at which every zone that is currently playing reconnects to flush the drift buffer. It occurs every day. Leave empty to disable the daily schedule — the Resync pin still works while Stream Resync is enabled.

Debug Print

Controls how much diagnostic detail the plugin prints to the Q-SYS Lua console.

Controls

The plugin has three kinds of page: Radio (play and control), Search (find new stations), and Presets (organise saved stations). With more than one zone you get a Radio and a Presets page per zone, numbered Radio 1, Radio 2, and so on, plus a single shared Search page.

Radio

The main operating page, and the one to put in front of an end user. Everything needed to play, adjust, and switch stations is here.

Status

The bar at the top right shows whether the plugin can reach the Radio Browser directory. Green OK means searching works. This is about the directory, not about playback — a station keeps playing perfectly well even if the directory goes offline, because the stream comes straight from the broadcaster. This same state is published on the Status pin.

Now Playing

Everything known about the current station. On the left is the station's logo, fetched automatically from the directory. On the right is the station name, and below it the current track — song title and artist — when the station broadcasts that information. Many stations do not, in which case the line reads Live stream while audio is flowing. Underneath are the stream bitrate in KBPS, the COUNTRY the station broadcasts from, its genre tags, and the stream address.

Stream

The bar along the bottom of the Now Playing card reports playback health for this zone specifically:

BUF

The network buffer, from 50 ms to 2000 ms, default 100 ms. This is how much audio the Core holds in reserve to ride out network hiccups. Raise it if a station stutters or drops out on a congested or distant link; the cost is a slightly longer delay before audio starts. Lower it only if you need playback to begin faster. The setting applies to every zone.

Volume

A fader from −60 dB to 0 dB with − and + buttons either side. Tap a button to nudge the level by 1 dB; hold it to ramp continuously. The Mute button on the right silences the zone with a short fade rather than an abrupt cut, and its icon shows a red cross when muted.

Note: Volume resets to −20 dB every time the design starts or is recompiled. This is deliberate: after a Core reboot the system always comes back at a known, safe level rather than wherever the fader happened to be left.

Level Meters

Post-fader level, −60 dB to +6 dB. Two meters (L and R) in Stereo mode, one in Mono. Use them to confirm audio is genuinely flowing — a green OK status with dead meters means the station is connected but silent.

Play

Starts and stops the zone.

Changing station while audio is playing crossfades between the old and new stream over about a second and a half. The new station is connected quietly in the background first, so there is no silent gap and no pop. If the new station fails to connect within ten seconds, the plugin falls back to a straightforward switch so the change still happens.

Surprise Me

Picks a random station from the directory and plays it immediately in this zone. Stations at 64 kbps or better are preferred, so you are unlikely to land on something unlistenable. Useful for background music where the exact station does not matter, and genuinely enjoyable to press.

Auto Failover

When enabled, the plugin automatically switches to a saved preset if the current station fails. See Auto Failover.

Presets

Nine preset buttons in a three-by-three grid, with the station name beneath each one and a small green LED that lights when that preset is the station currently playing in this zone. Above the grid are the page arrows and a dropdown listing every saved preset. See Using Presets.

Search

Where you find new stations. This page is shared by all zones. It is mainly a commissioning tool — once presets are saved, operators rarely need it.

Browse

Search by Name, by Country, or by both together. Typing in the Name field or choosing a country searches straight away; the Search button re-runs the search with whatever is currently in the two fields. Partial names work well — searching for jazz finds every station with "jazz" in its name. Results are capped at 50 stations and ordered by popularity, so the best-known stations appear first.

Leaving both fields empty does nothing — set at least a name or a country. To browse without a search term, use Discover below.

Discover

Browse the directory's charts instead of searching by name. Choose a Mode:

Add a Tag to narrow any mode to a genre, so Top Clicked plus jazz gives you the most popular jazz stations. Refresh re-runs the current selection.

Search Results

The list at the bottom shows whatever the Browse or Discover card returned last. Tap a station to load it. With more than one zone, the Play In dropdown to the right of the list decides which zone receives it.

Tip: Internet radio stations come and go. If a station that worked last month has stopped, search for it again — broadcasters change their stream addresses fairly often, and the directory usually has the new one. Saved presets refresh their addresses automatically each time the design starts.

Presets

A full-height list of every saved preset, plus the tools to rename them and mark them as failover backups. With more than one zone there is one of these pages per zone; the list of presets is the same on all of them, because preset storage is shared.

Preset List

Every saved preset in slot order. Tap one to play it in this zone and select it for editing below.

Friendly Name

Station names from the directory are often cluttered — RADIO NOVA 105.5 FM ★★ THE BEST HITS ★★. Selected shows which preset you are currently editing. Type something shorter — say, Nova — into Name and press Apply, and that name replaces it everywhere: the preset button, the dropdowns, and this list. To restore the station's original name, clear Name and press Apply again.

Use as Backup

Marks the selected preset as a failover backup. See Auto Failover.

Using Presets

There are 36 preset slots, shown nine at a time across four pages. Use the ‹ and › arrows to change page; the page counter between them shows how many pages currently hold presets, growing as you fill slots.

Preset storage is shared by every zone — save a station in Zone 1 and it appears in Zone 2's list as well. What each zone plays is independent, so two zones can play two different presets at once.

Saving a preset

  1. Play or select the station you want to save.
  2. Press Save Mode. It stays lit, waiting for your next tap.
  3. Tap the preset button you want to save into. Saving over an occupied slot replaces it.

Save Mode switches itself off after one save, so you cannot overwrite a preset by accident on your next tap.

Recalling a preset

Tap the preset button, or pick it from the dropdown on the Radio page, or tap it in the list on the Presets page. The green LED on the button lights when that preset is the station currently playing in this zone.

Deleting a preset

Press Delete Mode, then tap the preset to clear it. Like Save Mode, it switches itself off after one use. Deleting a preset does not interrupt playback, even if that preset is what is currently playing.

Auto Failover

Internet radio stations fail. They go offline, their addresses change, and sometimes they keep the connection open while broadcasting nothing at all. In a commercial installation — a shop, a gym, a restaurant — silence is the failure everyone notices. Auto Failover exists so that a dead station does not become a silent room.

Switch on Auto Failover on the Radio page and the plugin watches the zone for two kinds of failure:

On either, the plugin moves to the next saved preset and keeps trying down the list until one plays. Each preset is tried once. If none work — usually because the internet connection itself is down — it waits two minutes and sweeps the list again, so the system recovers on its own once the network comes back.

Dead-air detection measures the audio level before the volume fader and mute, so turning a zone down or muting it never triggers a false failover. The silence threshold is deliberately conservative, so the quiet passages in classical music will not trip it.

Choosing which presets are used

By default the plugin walks through every saved preset. To control the order and choice, mark specific presets as backups: select a preset on the Presets page and switch on Use as Backup. As soon as at least one preset is marked, failover uses only the marked ones. This is how you make sure a music-led venue falls back to another music station rather than to a talk station.

Note: Auto Failover needs saved presets to switch to. With no presets saved it has nowhere to go. Save at least two or three reliable stations before you rely on it.

Multiple Zones

Set Zone Count to 2, 3, or 4 and the plugin becomes that many independent radio players in one component. Each zone gets its own Radio page, its own Presets page, its own audio pins, and its own volume, mute, and playback state.

What is shared: the 36 preset slots, the Search page, the network buffer, and the directory status. What is independent: which station each zone plays, its volume and mute, and its Auto Failover setting.

On the Search page, the Play In dropdown appears next to the results list and decides which zone receives the station you tap. It defaults to Zone 1. Preset buttons and dropdowns are already per-zone, so they always act on the zone whose page you are looking at.

Tip: Zones stream independently, so four zones playing four stations use roughly four times the bandwidth of one. Four zones all playing the same station still open four separate streams — if every room wants the same audio, use one zone and distribute it inside Q-SYS instead.

Files on the Core

Everything the plugin saves lives in one shared folder, visible in Core Manager:

Files > Coreforge Labs - Files > Radio Browser

File

Purpose

Presets.json

All 36 preset slots — station details, friendly names, and Use as Backup flags. One file, shared by every zone.

CurrentStation_Zn.json

The station zone n was playing, written every time that zone changes station. Read back at startup so the zone resumes automatically after a Core reboot or design recompile. One file per zone.

Every time the design starts, the plugin re-checks each saved preset against the Radio Browser directory and quietly updates any stream address that has changed. This is what keeps presets working over months of use, and it happens with no action from you.

Tip: To copy presets to another Core, download Presets.json from Core Manager and upload it to the same folder on the other Core. To start presets over, delete Presets.json and let the plugin recreate it empty on the next start.

Control Pins

These pins appear on the plugin component in the design canvas, so you can wire them to other components, scripts, or a control system. Per-zone pins repeat for each zone when Zone Count is more than 1. Every other control remains available to UCIs and external control, even though it is not shown as a pin.

Pin Name

Value

String

Purpose

Pins Available

System

Status

0 - 5

(text)

Directory reachable

Output

Playback (per zone)

Play

0

1

false

true

Start / stop the zone

Input / Output

PlayOn

1

true

Pulse to start playing

Input

PlayOff

1

true

Pulse to stop playing

Input

Resync

1

true

Pulse to reconnect the current stream

Input

Volume

-60 - 0

(dB)

Zone level

Input / Output

Mute

0

1

false

true

Mute the zone

Input / Output

Station (per zone)

StationSearch

-

(preset name)

Recall a preset by name

Input

StationURL

-

(stream address)

Current stream, or push your own

Input / Output

NowPlaying

-

(track title)

Song and artist, when broadcast

Output

AlbumArtURL

-

(image address)

Station logo, for third-party panels

Output

Audio (per zone)

Zone n Audio L / R

-

-

Stereo audio out

Output

Zone n Audio

-

-

Summed mono audio out

Output

1. Pins marked "Input / Output" can be both written and read; "Input" pins accept external writes; "Output" pins report plugin state. Per-zone pins appear once for each zone, named with the zone number when Zone Count is greater than 1. Audio pins depend on the Audio Mode property: Stereo publishes L and R pins per zone, Mono publishes a single summed pin per zone.
2. StationSearch matches against your saved presets, not the whole directory. Write a preset's name (or part of it) and that preset is recalled; an exact match wins over a partial one. This lets a control system select stations by name without needing to know stream addresses.